/* 头文件 */
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/module.h>

#include <linux/miscdevice.h>

#include <linux/fs.h>

struct file_operations misc_fops = {
    .owner = THIS_MODULE,
};

//杂项设备结构体
struct miscdevice misc_dev = {
    .minor = MISC_DYNAMIC_MINOR,
    .name = "my_misc_test",
    .fops = &misc_fops,
};


static int misc_init(void)
{
    int ret;
    ret = misc_register(&misc_dev);
    if(ret<0)
    {
        printk(KERN_EMERG "misc registe is err\r\n");
    }
    printk(KERN_EMERG "misc registe is OK\r\n");

    // printk(KERN_EMERG "misc_init\r\n");
    return 0;
}

static void misc_exit(void)
{
    misc_deregister(&misc_dev);
    printk(KERN_EMERG "misc_exit");
}

module_init(misc_init);
module_exit(misc_exit);
MODULE_LICENSE("GPL v2");
MODULE_AUTHOR("jianghe");
